package com.agentframework.core.agent;

import com.agentframework.core.action.Action;
import com.agentframework.core.environment.AbstractEnvironment;
import org.springframework.ai.chat.messages.Message;

import java.util.List;

/**
 * 智能体
 * @author wangjun
 **/
public interface Agent {

    String NAME = "name";

    String PROFILE = "profile";

    String GOAL = "goal";

    String MSG_FROM = "msg_from";

    /**
     * 消息给哪些人处理
     */
    String SEND_TO = "send_to";

    /**
     * 消息给哪些人看，如果不设置，默认给所有人看
     * 添加到当前智能体的历史消息列表
     */
    String VIEW_TO = "view_to";

    String TO_ALL = "all";

    String AGENT_STATUS = "agent_status";

    String ACTION = "action";

    void run(String message);

    void run();

    AgentContext getContext();

    AbstractEnvironment getEnvironment();

    String getAgentId();

    List<Action> getActions();

    void publishMessage(Message message);

}
